// vite.config.js
import { fileURLToPath, URL } from "node:url";
import { createHtmlPlugin } from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/vite-plugin-html/dist/index.mjs";
import { defineConfig, loadEnv } from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/vite/dist/node/index.js";
import vue from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import { visualizer } from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/rollup-plugin-visualizer/dist/plugin/index.js";
import { createSvgIconsPlugin } from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/vite-plugin-svg-icons/dist/index.mjs";
import viteCompression from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/vite-plugin-compression/dist/index.mjs";

// plugin/build-zip.js
import path from "path";
import fs from "fs";
import JSZip from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/jszip/lib/index.js";
var __vite_injected_original_dirname = "E:\\Desktop\\Java\\Vue\\vue3_template\\plugin";
var plugin = function(fileName = "dist", output) {
  if (!output)
    output = path.resolve(__vite_injected_original_dirname, `../${fileName}`);
  fileName += ".zip";
  const makeZip = function() {
    const zip = new JSZip();
    const distPath = path.resolve(output);
    const readDir = function(zip2, dirPath) {
      const files = fs.readdirSync(dirPath);
      files.forEach((fileName2) => {
        const fillPath = path.join(dirPath, "./", fileName2);
        const file = fs.statSync(fillPath);
        if (file.isDirectory()) {
          const dirZip = zip2.folder(fileName2);
          readDir(dirZip, fillPath);
        } else {
          zip2.file(fileName2, fs.readFileSync(fillPath));
        }
      });
    };
    const removeExistedZip = () => {
      const dest = path.join(distPath, `./${fileName}`);
      if (fs.existsSync(dest)) {
        fs.unlinkSync(dest);
      }
    };
    const zipDir = function() {
      readDir(zip, distPath);
      zip.generateAsync({
        type: "nodebuffer",
        // 压缩类型
        compression: "DEFLATE",
        // 压缩算法
        compressionOptions: {
          // 压缩级别
          level: 9
        }
      }).then((content) => {
        const dest = path.join(distPath, `../${fileName}`);
        removeExistedZip();
        fs.writeFileSync(dest, content);
      });
    };
    removeExistedZip();
    zipDir(distPath);
  };
  return {
    name: "vite-plugin-auto-zip",
    apply: "build",
    closeBundle() {
      makeZip();
    }
  };
};

// vite.config.js
import AutoImport from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/unplugin-auto-import/dist/vite.js";
import Components from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/unplugin-vue-components/dist/vite.js";
import { ElementPlusResolver } from "file:///E:/Desktop/Java/Vue/vue3_template/node_modules/unplugin-vue-components/dist/resolvers.js";
var __vite_injected_original_import_meta_url = "file:///E:/Desktop/Java/Vue/vue3_template/vite.config.js";
var getViteEnv = (mode, target) => {
  return loadEnv(mode, process.cwd())[target];
};
var root = process.cwd();
var vite_config_default = defineConfig(({ command, mode }) => {
  let env = null;
  const isBuild = command === "build";
  if (isBuild) {
    env = loadEnv(process.argv[3] === "--mode" ? process.argv[4] : process.argv[3], root);
  } else {
    env = loadEnv(mode, root);
  }
  return {
    plugins: [
      createHtmlPlugin({
        inject: {
          data: {
            title: getViteEnv(mode, "VITE_TITLE")
          }
        }
      }),
      vue(),
      visualizer(),
      createSvgIconsPlugin({
        // 指定要缓存的图标文件夹
        iconDirs: [fileURLToPath(new URL("./src/assets/svg", __vite_injected_original_import_meta_url))],
        // 执行icon name的格式
        symbolId: "icon-[name]"
      }),
      plugin(getViteEnv(mode, "VITE_BUILD_FILLNAME")),
      viteCompression({
        threshold: 1024 * 500,
        // 对大于500kb的文件进行压缩
        algorithm: "gzip",
        // 采用的压缩算法，默认是 gzip
        ext: ".gz"
        // 生成的压缩包后缀
      }),
      AutoImport({
        resolvers: [ElementPlusResolver()]
      }),
      Components({
        resolvers: [ElementPlusResolver()]
      })
    ],
    resolve: {
      alias: {
        "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)),
        "@views": fileURLToPath(new URL("./src/views", __vite_injected_original_import_meta_url)),
        "@img": fileURLToPath(new URL("./src/assets/images", __vite_injected_original_import_meta_url)),
        "@com": fileURLToPath(new URL("./src/components", __vite_injected_original_import_meta_url))
      },
      extensions: [".vue", ".mjs", ".js", ".json", ".node", ".scss"]
    },
    base: "/",
    server: {
      host: "0.0.0.0",
      port: 10,
      open: true
    },
    build: {
      outDir: getViteEnv(mode, "VITE_BUILD_FILLNAME"),
      rollupOptions: {
        output: {
          entryFileNames: "js/[name]-[hash].js",
          chunkFileNames: "js/[name]-[hash].js",
          assetFileNames(assetInfo) {
            if (assetInfo.name.endsWith(".css")) {
              return "css/[name]-[hash].css";
            }
            const imgExts = [".png", ".jpg", ".jpeg", ".svg", ".gif", ".ico", ".webp"];
            if (imgExts.some((ext) => assetInfo.name.endsWith(ext))) {
              return "image/[name]-[hash][ext]";
            }
            return "assets/[name]-[hash][ext]";
          }
        }
      },
      terserOptions: {
        minify: "esbuild",
        compress: {
          //生产环境时移除console
          drop_console: true,
          drop_debugger: true
        }
      },
      esbuild: {
        drop: env.VITE_DELETE_SIGN == "true" ? ["console", "debugger"] : []
      }
    }
  };
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAicGx1Z2luL2J1aWxkLXppcC5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkU6XFxcXERlc2t0b3BcXFxcSmF2YVxcXFxWdWVcXFxcdnVlM190ZW1wbGF0ZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcRGVza3RvcFxcXFxKYXZhXFxcXFZ1ZVxcXFx2dWUzX3RlbXBsYXRlXFxcXHZpdGUuY29uZmlnLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9FOi9EZXNrdG9wL0phdmEvVnVlL3Z1ZTNfdGVtcGxhdGUvdml0ZS5jb25maWcuanNcIjtpbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBVUkwgfSBmcm9tICdub2RlOnVybCdcbmltcG9ydCB7IGNyZWF0ZUh0bWxQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1odG1sJ1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IHsgdmlzdWFsaXplciB9IGZyb20gJ3JvbGx1cC1wbHVnaW4tdmlzdWFsaXplcidcblxuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnXG5pbXBvcnQgdml0ZUNvbXByZXNzaW9uIGZyb20gJ3ZpdGUtcGx1Z2luLWNvbXByZXNzaW9uJ1xuaW1wb3J0IHsgcGx1Z2luIGFzIGJ1aWxkWmlwIH0gZnJvbSAnLi9wbHVnaW4vYnVpbGQtemlwLmpzJ1xuXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvdml0ZSdcbmltcG9ydCB7IEVsZW1lbnRQbHVzUmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnXG5cblxuY29uc3QgZ2V0Vml0ZUVudiA9IChtb2RlLCB0YXJnZXQpID0+IHtcbiAgcmV0dXJuIGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSlbdGFyZ2V0XVxufVxuY29uc3Qgcm9vdCA9IHByb2Nlc3MuY3dkKClcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IGNvbW1hbmQsIG1vZGUgfSkgPT4ge1xuICBsZXQgZW52ID0gbnVsbFxuICBjb25zdCBpc0J1aWxkID0gY29tbWFuZCA9PT0gJ2J1aWxkJ1xuXG4gIGlmIChpc0J1aWxkKSB7XG4gICAgZW52ID0gbG9hZEVudihwcm9jZXNzLmFyZ3ZbM10gPT09ICctLW1vZGUnID8gcHJvY2Vzcy5hcmd2WzRdIDogcHJvY2Vzcy5hcmd2WzNdLCByb290KVxuICB9IGVsc2Uge1xuICAgIGVudiA9IGxvYWRFbnYobW9kZSwgcm9vdClcbiAgfVxuICByZXR1cm4ge1xuICAgIHBsdWdpbnM6IFtcbiAgICAgIGNyZWF0ZUh0bWxQbHVnaW4oe1xuICAgICAgICBpbmplY3Q6IHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aXRsZTogZ2V0Vml0ZUVudihtb2RlLCAnVklURV9USVRMRScpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcblxuICAgICAgdnVlKCksXG4gICAgICB2aXN1YWxpemVyKCksXG4gICAgICBjcmVhdGVTdmdJY29uc1BsdWdpbih7XG4gICAgICAgIC8vIFx1NjMwN1x1NUI5QVx1ODk4MVx1N0YxM1x1NUI1OFx1NzY4NFx1NTZGRVx1NjgwN1x1NjU4N1x1NEVGNlx1NTkzOVxuICAgICAgICBpY29uRGlyczogW2ZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi9zcmMvYXNzZXRzL3N2ZycsIGltcG9ydC5tZXRhLnVybCkpXSxcbiAgICAgICAgLy8gXHU2MjY3XHU4ODRDaWNvbiBuYW1lXHU3Njg0XHU2ODNDXHU1RjBGXG4gICAgICAgIHN5bWJvbElkOiAnaWNvbi1bbmFtZV0nXG4gICAgICB9KSxcbiAgICAgIGJ1aWxkWmlwKGdldFZpdGVFbnYobW9kZSwgJ1ZJVEVfQlVJTERfRklMTE5BTUUnKSksXG4gICAgICB2aXRlQ29tcHJlc3Npb24oe1xuICAgICAgICB0aHJlc2hvbGQ6IDEwMjQgKiA1MDAsIC8vIFx1NUJGOVx1NTkyN1x1NEU4RTUwMGtiXHU3Njg0XHU2NTg3XHU0RUY2XHU4RkRCXHU4ODRDXHU1MzhCXHU3RjI5XG4gICAgICAgIGFsZ29yaXRobTogJ2d6aXAnLCAvLyBcdTkxQzdcdTc1MjhcdTc2ODRcdTUzOEJcdTdGMjlcdTdCOTdcdTZDRDVcdUZGMENcdTlFRDhcdThCQTRcdTY2MkYgZ3ppcFxuICAgICAgICBleHQ6ICcuZ3onIC8vIFx1NzUxRlx1NjIxMFx1NzY4NFx1NTM4Qlx1N0YyOVx1NTMwNVx1NTQwRVx1N0YwMFxuICAgICAgfSksXG4gICAgICBBdXRvSW1wb3J0KHtcbiAgICAgICAgcmVzb2x2ZXJzOiBbRWxlbWVudFBsdXNSZXNvbHZlcigpXSxcbiAgICAgIH0pLFxuICAgICAgQ29tcG9uZW50cyh7XG4gICAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgICB9KSxcbiAgICBdLFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgICdAJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL3NyYycsIGltcG9ydC5tZXRhLnVybCkpLFxuICAgICAgICAnQHZpZXdzJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL3NyYy92aWV3cycsIGltcG9ydC5tZXRhLnVybCkpLFxuICAgICAgICAnQGltZyc6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi9zcmMvYXNzZXRzL2ltYWdlcycsIGltcG9ydC5tZXRhLnVybCkpLFxuICAgICAgICAnQGNvbSc6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi9zcmMvY29tcG9uZW50cycsIGltcG9ydC5tZXRhLnVybCkpXG4gICAgICB9LFxuICAgICAgZXh0ZW5zaW9uczogWycudnVlJywgJy5tanMnLCAnLmpzJywgJy5qc29uJywgJy5ub2RlJywgJy5zY3NzJ11cbiAgICB9LFxuICAgIGJhc2U6ICcvJyxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGhvc3Q6ICcwLjAuMC4wJyxcbiAgICAgIHBvcnQ6IDEwLFxuICAgICAgb3BlbjogdHJ1ZVxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIG91dERpcjogZ2V0Vml0ZUVudihtb2RlLCAnVklURV9CVUlMRF9GSUxMTkFNRScpLFxuICAgICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICBlbnRyeUZpbGVOYW1lczogJ2pzL1tuYW1lXS1baGFzaF0uanMnLFxuICAgICAgICAgIGNodW5rRmlsZU5hbWVzOiAnanMvW25hbWVdLVtoYXNoXS5qcycsXG4gICAgICAgICAgYXNzZXRGaWxlTmFtZXMoYXNzZXRJbmZvKSB7XG4gICAgICAgICAgICBpZiAoYXNzZXRJbmZvLm5hbWUuZW5kc1dpdGgoJy5jc3MnKSkge1xuICAgICAgICAgICAgICByZXR1cm4gJ2Nzcy9bbmFtZV0tW2hhc2hdLmNzcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGltZ0V4dHMgPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcuc3ZnJywgJy5naWYnLCAnLmljbycsICcud2VicCddXG4gICAgICAgICAgICBpZiAoaW1nRXh0cy5zb21lKChleHQpID0+IGFzc2V0SW5mby5uYW1lLmVuZHNXaXRoKGV4dCkpKSB7XG4gICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvW25hbWVdLVtoYXNoXVtleHRdJ1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJ2Fzc2V0cy9bbmFtZV0tW2hhc2hdW2V4dF0nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdGVyc2VyT3B0aW9uczoge1xuICAgICAgICBtaW5pZnk6ICdlc2J1aWxkJyxcbiAgICAgICAgY29tcHJlc3M6IHtcbiAgICAgICAgICAvL1x1NzUxRlx1NEVBN1x1NzNBRlx1NTg4M1x1NjVGNlx1NzlGQlx1OTY2NGNvbnNvbGVcbiAgICAgICAgICBkcm9wX2NvbnNvbGU6IHRydWUsXG4gICAgICAgICAgZHJvcF9kZWJ1Z2dlcjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXNidWlsZDoge1xuICAgICAgICBkcm9wOiBlbnYuVklURV9ERUxFVEVfU0lHTiA9PSAndHJ1ZScgPyBbJ2NvbnNvbGUnLCAnZGVidWdnZXInXSA6IFtdXG4gICAgICB9XG4gICAgfVxuICB9XG59KVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxEZXNrdG9wXFxcXEphdmFcXFxcVnVlXFxcXHZ1ZTNfdGVtcGxhdGVcXFxccGx1Z2luXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJFOlxcXFxEZXNrdG9wXFxcXEphdmFcXFxcVnVlXFxcXHZ1ZTNfdGVtcGxhdGVcXFxccGx1Z2luXFxcXGJ1aWxkLXppcC5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovRGVza3RvcC9KYXZhL1Z1ZS92dWUzX3RlbXBsYXRlL3BsdWdpbi9idWlsZC16aXAuanNcIjtpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IEpTWmlwIGZyb20gJ2pzemlwJ1xuZXhwb3J0IGNvbnN0IHBsdWdpbiA9IGZ1bmN0aW9uIChmaWxlTmFtZSA9ICdkaXN0Jywgb3V0cHV0KSB7XG4gIGlmICghb3V0cHV0KSBvdXRwdXQgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBgLi4vJHtmaWxlTmFtZX1gKSAvLyAuL2Rpc3RUZXN0XHU2NjJGXHU2ODM5XHU2MzZFXHU1QjlFXHU5NjQ1XHU4REVGXHU1Rjg0XHU4MDBDXHU2NzY1XG4gIGZpbGVOYW1lICs9ICcuemlwJ1xuICBjb25zdCBtYWtlWmlwID0gZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHppcCA9IG5ldyBKU1ppcCgpXG4gICAgY29uc3QgZGlzdFBhdGggPSBwYXRoLnJlc29sdmUob3V0cHV0KVxuICAgIGNvbnN0IHJlYWREaXIgPSBmdW5jdGlvbiAoemlwLCBkaXJQYXRoKSB7XG4gICAgICAvLyBcdThCRkJcdTUzRDZkaXN0XHU0RTBCXHU3Njg0XHU2ODM5XHU2NTg3XHU0RUY2XHU3NkVFXHU1RjU1XG4gICAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGRpclBhdGgpXG4gICAgICBmaWxlcy5mb3JFYWNoKChmaWxlTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxsUGF0aCA9IHBhdGguam9pbihkaXJQYXRoLCAnLi8nLCBmaWxlTmFtZSlcbiAgICAgICAgY29uc3QgZmlsZSA9IGZzLnN0YXRTeW5jKGZpbGxQYXRoKVxuICAgICAgICAvLyBcdTU5ODJcdTY3OUNcdTY2MkZcdTY1ODdcdTRFRjZcdTU5MzlcdTc2ODRcdThCRERcdTk3MDBcdTg5ODFcdTkwMTJcdTVGNTJcdTkwNERcdTUzODZcdTRFMEJcdTk3NjJcdTc2ODRcdTVCNTBcdTY1ODdcdTRFRjZcbiAgICAgICAgaWYgKGZpbGUuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIGNvbnN0IGRpclppcCA9IHppcC5mb2xkZXIoZmlsZU5hbWUpXG4gICAgICAgICAgcmVhZERpcihkaXJaaXAsIGZpbGxQYXRoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFx1OEJGQlx1NTNENlx1NkJDRlx1NEUyQVx1NjU4N1x1NEVGNlx1NEUzQWJ1ZmZlclx1NUI1OFx1NTIzMHppcFx1NEUyRFxuICAgICAgICAgIHppcC5maWxlKGZpbGVOYW1lLCBmcy5yZWFkRmlsZVN5bmMoZmlsbFBhdGgpKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCByZW1vdmVFeGlzdGVkWmlwID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGVzdCA9IHBhdGguam9pbihkaXN0UGF0aCwgYC4vJHtmaWxlTmFtZX1gKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoZGVzdCkpIHtcbiAgICAgICAgZnMudW5saW5rU3luYyhkZXN0KVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB6aXBEaXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZWFkRGlyKHppcCwgZGlzdFBhdGgpXG4gICAgICB6aXBcbiAgICAgICAgLmdlbmVyYXRlQXN5bmMoe1xuICAgICAgICAgIHR5cGU6ICdub2RlYnVmZmVyJywgLy8gXHU1MzhCXHU3RjI5XHU3QzdCXHU1NzhCXG4gICAgICAgICAgY29tcHJlc3Npb246ICdERUZMQVRFJywgLy8gXHU1MzhCXHU3RjI5XHU3Qjk3XHU2Q0Q1XG4gICAgICAgICAgY29tcHJlc3Npb25PcHRpb25zOiB7XG4gICAgICAgICAgICAvLyBcdTUzOEJcdTdGMjlcdTdFQTdcdTUyMkJcbiAgICAgICAgICAgIGxldmVsOiA5XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoY29udGVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlc3QgPSBwYXRoLmpvaW4oZGlzdFBhdGgsIGAuLi8ke2ZpbGVOYW1lfWApXG4gICAgICAgICAgcmVtb3ZlRXhpc3RlZFppcCgpXG4gICAgICAgICAgLy8gXHU2MjhBemlwXHU1MzA1XHU1MTk5XHU1MjMwXHU3ODZDXHU3NkQ4XHU0RTJEXHVGRjBDXHU4RkQ5XHU0RTJBY29udGVudFx1NzNCMFx1NTcyOFx1NjYyRlx1NEUwMFx1NkJCNWJ1ZmZlclxuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGVzdCwgY29udGVudClcbiAgICAgICAgfSlcbiAgICB9XG4gICAgcmVtb3ZlRXhpc3RlZFppcCgpXG4gICAgemlwRGlyKGRpc3RQYXRoKVxuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWF1dG8temlwJyxcbiAgICBhcHBseTogJ2J1aWxkJyxcbiAgICBjbG9zZUJ1bmRsZSgpIHtcbiAgICAgIG1ha2VaaXAoKVxuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUErUixTQUFTLGVBQWUsV0FBVztBQUNsVSxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGNBQWMsZUFBZTtBQUN0QyxPQUFPLFNBQVM7QUFDaEIsU0FBUyxrQkFBa0I7QUFFM0IsU0FBUyw0QkFBNEI7QUFDckMsT0FBTyxxQkFBcUI7OztBQ1BzUixPQUFPLFVBQVU7QUFDblUsT0FBTyxRQUFRO0FBQ2YsT0FBTyxXQUFXO0FBRmxCLElBQU0sbUNBQW1DO0FBR2xDLElBQU0sU0FBUyxTQUFVLFdBQVcsUUFBUSxRQUFRO0FBQ3pELE1BQUksQ0FBQztBQUFRLGFBQVMsS0FBSyxRQUFRLGtDQUFXLE1BQU0sUUFBUSxFQUFFO0FBQzlELGNBQVk7QUFDWixRQUFNLFVBQVUsV0FBWTtBQUMxQixVQUFNLE1BQU0sSUFBSSxNQUFNO0FBQ3RCLFVBQU0sV0FBVyxLQUFLLFFBQVEsTUFBTTtBQUNwQyxVQUFNLFVBQVUsU0FBVUEsTUFBSyxTQUFTO0FBRXRDLFlBQU0sUUFBUSxHQUFHLFlBQVksT0FBTztBQUNwQyxZQUFNLFFBQVEsQ0FBQ0MsY0FBYTtBQUMxQixjQUFNLFdBQVcsS0FBSyxLQUFLLFNBQVMsTUFBTUEsU0FBUTtBQUNsRCxjQUFNLE9BQU8sR0FBRyxTQUFTLFFBQVE7QUFFakMsWUFBSSxLQUFLLFlBQVksR0FBRztBQUN0QixnQkFBTSxTQUFTRCxLQUFJLE9BQU9DLFNBQVE7QUFDbEMsa0JBQVEsUUFBUSxRQUFRO0FBQUEsUUFDMUIsT0FBTztBQUVMLFVBQUFELEtBQUksS0FBS0MsV0FBVSxHQUFHLGFBQWEsUUFBUSxDQUFDO0FBQUEsUUFDOUM7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQ0EsVUFBTSxtQkFBbUIsTUFBTTtBQUM3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
